// pages/plp/plp.js
const app = getApp();
const db = wx.cloud.database();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    //历史页面的用户暂存瓶子数组
    bottle_id_array:[],
    //已经按下
    down:false,
    //捞的奇怪的东西图片
    strange_pic:"/images/watertree.png",
    //捞的垃圾图片
    rubbish_pic:"/images/fishbone.png",
    //捞的奇怪的东西
    strange:false,
    //捞的垃圾
    rubbish:false,
    //历史展示详情未点开的标志
    history_is_show:true,
    //历史展示详情
    history_show_detail:{},
    //清除内容
    info_clear: "",
    //历史信息
    history_data: [],
    //字数限制
    current: 0,
    //写入数据库的变量
    nr: "",
    pic: "https://media0.giphy.com/media/xUPGcuPLCKs0LiYnCg/200w.webp?cid=ecf05e473ul39w89u3ku07c9fosr7joggpx531qp7eojkipt&rid=200w.webp&ct=g",
    //pic:"/images/plus.png",
    //用于展示
    nr_show: "",
    pic_show: "",
    //显示历史
    history_Show: false,
    //扔瓶子界面显示函数
    put_bottle_Show: false,
    //捡瓶子 男
    pickUpBottle_man: false,
    //捡瓶子 女
    pickUpBottle_woman: false,
    //显示球球规则
    xianshiguize:true
  },

  //预览图片
  preimg(event){
    wx.previewImage({
      urls: [event.currentTarget.dataset.url],
    })
  },
  //球
  guize(){
    var flag=this.data.xianshiguize
    console.log(flag);
    if(flag==true){
      this.setData({
        xianshiguize:false
      })
    }else{
      this.setData({
        xianshiguize:true
      })
    }
  },


  //扔出一个漂流瓶写入数据库
  finish() {
    //已经按下按钮
    this.setData({
      down:true
    })
    console.log("app", app);
    db.collection("user").where({
      _openid: app.userInfo._openid
    }).get().then(res => {
      console.log("user", res);
      var _time = new Date().getTime()
      //注意添加index中登录的数据库基础字段sex
      var gender = res.data[0].userinfo.sex
      if (gender == "") {
        wx.showToast({
          title: '请先设置性别哦！',
        })
        /// 未设置性别 跳转---
        wx.navigateTo({
          url: '/miniprogram/pages/....',
        })
        return
      } else {
        //直接拼接出云路径(存入plp中用于渲染)
        var path_cloud = "cloud://wan-an-gpnu-4gm1hsj6bb4b58fb.7761-wan-an-gpnu-4gm1hsj6bb4b58fb-1309987324/plp_img/" + _time.toString() + ".jpg"
        //上传到云存储
        wx.cloud.uploadFile({
          cloudPath: "plp_img/" + _time + ".jpg", // 上传至云端的路径
          filePath: this.data.pic, // 小程序临时文件路径
          success: res => {
            success_upload_num++ //记录成功获取云储存路径的图片数量
            console.log("成功上传的数量图片：", success_upload_num)
            //展示完成提交信息
          },
          //sss
          fail: console.log("上传时不知为啥有错")
        })
        db.collection("plp").add({
          data: {
            _time: _time,
            info: {
              nr: this.data.nr,
              //云存储路径
              pic: path_cloud,
              gender: gender,
            }
          }
        }).then(res => {
          //收起并且清空内容
          this.setData({
            //恢复按钮
            down:false,
            info_clear: "",
            put_bottle_Show: false,
            //猫鱼
            pic: "https://media4.giphy.com/media/T9MvecMeiLgTXQ4s3h/giphy.webp?cid=ecf05e478zkjshsp9d53k41to25k369oiu6pw3bf2x1ffx41&rid=giphy.webp&ct=g"
            //pic:"/images/plus.png"
          })
          wx.showToast({
            title: '上传成功',
          })
          console.log(res);
        })
      }

    })
  },

  //开启捡到漂流瓶提示 捡瓶子男
  pickUpBottle_man() {
    this.setData({
      xianshiguize:false,
      pickUpBottle_man: true
    })
    db.collection("plp").where({
      "info.gender": "男",
    }).get().then(res => {
      console.log("抽取出来的男瓶子：", res);
      //抽取的长度
      var length = res.data.length;
      console.log("长度：", length);
      if (length == 0) {
        wx.showToast({
          title: '暂时无男生哦',
        })
        return
      }
      //随机抽取
      var random_num = Math.floor(Math.random() * length);
      console.log("抽到的随机数：", random_num);
      //捞到了吗？再加一个随机数判断
      var ispick = Math.floor(Math.random() * 10);
      //3 6 9拿到垃圾
      if(ispick%3==0&&ispick!=3){
        console.log("拿到垃圾");
        this.setData({
          //将垃圾返回
          rubbish:true  
        })
      }
      //1 2 4拿到奇怪的东西
      else if(ispick==1||ispick==2){
        //将奇怪的东西返回
        console.log("拿到奇怪的东西");
        this.setData({
          strange:true
        })
      }
      else{
        console.log("捞到了！");
        wx.showLoading({
          title: '',
          duration:500,
        })
         //用于展示
         this.setData({
          nr_show: res.data[random_num].info.nr,
          pic_show: res.data[random_num].info.pic,
        })
        console.log("捕捞到的瓶子内容:", res.data[random_num].info.nr)
        console.log("捕捞到的瓶子图片:", res.data[random_num].info.pic)
        //抽取的瓶子id
        var bottle_id = res.data[random_num]._id;
        console.log("抽取的瓶子id", bottle_id);
        //将信息写入用户列表
        //找到对应当前用户
        db.collection("user").where({
          _openid: app.userInfo._openid,
        }).get().then(res => {
          console.log("用户数据！", res);
          //记录捡到的数据连接  
          var bottle_pick = res.data[0].userinfo.bottle_pick;
          console.log("拿到的数组", bottle_pick);
          //开始查找是否存在id重复
          var flag_ = bottle_pick.indexOf(bottle_id);
          console.log("flag_", flag_);
          //没有才加入
          if (flag_ == -1) {
            var bottle_pick_new = bottle_pick.concat(bottle_id);
            console.log("新的瓶子id", bottle_id);
            db.collection("user").where({
              _openid: app.userInfo._openid
            }).update({
              data: {
                "userinfo.bottle_pick": bottle_pick_new,
              }
            }).then(res => {
              console.log("更新漂流瓶数组成功!");
            })
          } else {
            console.log("已经出现重复id");
            return
          }
        })
      }
    })
  },

  //再捞一个
  nextbottle(){
    console.log("再捞一个");
    this.setData({
      rubbish:false,
      strange:false,
    })
    this.pickUpBottle_man();
  },

  //删除历史信息
  delete_history(event){
    console.log("delete_history",event);
    //拿到当前数据id数组
    var bottle_id_array = this.data.bottle_id_array
    console.log("bottle_id_array",bottle_id_array);
    //拿到当前漂流瓶id
    var _id = event.currentTarget.dataset.id;
    console.log("_id",_id);
    //暂存数据中是否有准备删除的漂流瓶
    // var index =this.data.bottle_id_array.indexOf(_id);
    // console.log("index",index);
    bottle_id_array = bottle_id_array.filter(function(item) {return item != _id});
    console.log("删除后：",bottle_id_array);
    db.collection("user").where({_openid: app.userInfo._openid,}).update({
      data: {
        "userinfo.bottle_pick": bottle_id_array,
      }
    }).then(res=>{
      console.log("删除成功");
      //开始更新数据
      wx.showToast({
        title: '删除成功',
      })
      //调用封装好的函数，修改数据history_data
      this.show_history()
    })
  },

  //开启捡到漂流瓶提示 捡瓶子女
  pickUpBottle_woman: function () {
    this.setData({
      xianshiguize:false,
      pickUpBottle_woman: true
    })
    db.collection("plp").where({
      "info.gender": "女",
    }).get().then(res => {
      console.log("抽取出来的女瓶子：", res);
      //抽取的长度
      var length = res.data.length;
      console.log("长度：", length);
      if (length == 0) {
        wx.showToast({
          title: '暂时无女生哦',
        })
        return
      }
      //随机抽取
      var random_num = Math.floor(Math.random() * length);
      console.log("抽到的随机数：", random_num);
      //捞到了吗？再加一个随机数判断
      var ispick = Math.floor(Math.random() * 10);
      //3 6 9拿到垃圾
      if(ispick%3==0){
        console.log("拿到垃圾");
        this.setData({
          //将垃圾返回
          rubbish:true  
        })
      }
      //1 2 4拿到奇怪的东西
      else if(ispick==1||ispick==2||ispick==4){
        //将奇怪的东西返回
        console.log("拿到奇怪的东西");
        this.setData({
          strange:true
        })
      }else{
        console.log("抽到瓶子了");
        wx.showLoading({
          title: '',
          duration:500,
        })
         //用于展示
        this.setData({
          nr_show: res.data[random_num].info.nr,
          pic_show: res.data[random_num].info.pic,
        })
        console.log("捕捞到的瓶子内容:", res.data[random_num].info.nr)
        console.log("捕捞到的瓶子图片:", res.data[random_num].info.pic)
        //抽取的瓶子id
        var bottle_id = res.data[random_num]._id;
        console.log("抽取的瓶子id", bottle_id);
        //将信息写入用户列表
        //找到对应当前用户
        db.collection("user").where({
          _openid: app.userInfo._openid,
        }).get().then(res => {
          console.log("用户数据！", res);
          //记录捡到的数据连接  
          var bottle_pick = res.data[0].userinfo.bottle_pick;
          console.log("拿到的数组", bottle_pick);
          //开始查找是否存在id重复
          var flag_ = bottle_pick.indexOf(bottle_id);
          console.log("flag_", flag_);
          //没有才加入
          if (flag_ == -1) {
            var bottle_pick_new = bottle_pick.concat(bottle_id);
            console.log("新的瓶子id", bottle_id);
            db.collection("user").where({
              _openid: app.userInfo._openid
            }).update({
              data: {
                "userinfo.bottle_pick": bottle_pick_new,
              }
            }).then(res => {
              console.log("更新漂流瓶数组成功!");
            })
          }
        })
      }
     
    })
  },


  //关闭捡到漂流瓶提示
  hideRule: function () {
    this.setData({
      //解决男漂流瓶取后漂流瓶残留信息显示
      pic_show: "",
      nr_show: "",
      //----------------------------
      pickUpBottle_man: false,
      pickUpBottle_woman: false,
      //下拉历史
      history_Show:false,
      //让垃圾和奇怪的东西归一化
      rubbish:false,
      strange:false,
    })
  },
  //关闭捡到漂流瓶提示细节
  hideRule_history_detail(){
    this.setData({
      
      //保留历史前页
      history_Show: true,
      history_is_show:true,
      //关闭这一页
      history_show_detail:""
    })
  },
  //开启扔漂流瓶提示
  show_put_bottle: function () {
    this.setData({
      xianshiguize:false,
      put_bottle_Show: true
    })
  },
  //开启历史
  show_history: function () {
    this.setData({
      xianshiguize:false,
      history_Show: true,
    })
    db.collection("user").where({
      _openid: app.userInfo._openid
    }).get().then(res => {
      //console.log("当前瓶子id", res.data[0].userinfo.bottle_pick);
      //定义瓶子id数组
      var bottle_id_array = res.data[0].userinfo.bottle_pick;
      this.setData({
        //暂存id数组到data
        bottle_id_array:bottle_id_array
      })
      //判断瓶子上数是否增加，如果没增加就不用改变
      if (bottle_id_array.length != this.data.history_data.length) {
        //定义用于渲染的数据变量 history_data_temp  
        var history_data_temp = [];
        //拿到bottle后开始去plp中找
        for (var i = 0; i < bottle_id_array.length; i++) {
          //数据库拿数据
          db.collection("plp").doc(bottle_id_array[i]).get().then(res => {
            //console.log(res,"准备整合到temp数组");  
            history_data_temp = history_data_temp.concat(res.data)
          }).then(res => {
            //更新数据
            this.setData({
              history_data: history_data_temp,
            })
          })
        }
      }else{
        console.log("当前瓶子数未发生改变，数据不用更新！");
      }
    })
  },
  //查看历史细节
  show_history_detail(event) {
    console.log("bottle_history_detail_id",event.currentTarget.dataset.id);
    //拿到id
    var id = event.currentTarget.dataset.id;
    db.collection("plp").doc(id).get().then(res=>{
      console.log('bottle',res);
      this.setData({
        //根据性别判断 开始为空 注意恢复初始
        history_show_detail:res,
        history_is_show:false
      })
    })
  },
  //关闭扔漂流瓶提示
  hide_put_bottle: function () {
    this.setData({
      put_bottle_Show: false
    })
  },


  // -----------------这是扔漂流瓶的js函数-----------------

  //插入一张图片
  imgAdding() {
    wx.chooseImage({
      count: 1,
    }).then(res => {
      console.log("img:", res);
      this.setData({
        pic: res.tempFilePaths[0],
      })
      console.log("succeed！pic is :", this.data.pic);
    })
  },

  //预览图片
  checkimg(event) {
    wx.previewImage({
      urls: [event.currentTarget.dataset.url],
    })
  },

  // 当输入框失去焦点时触发该事件，并返回输入框的内容数据
  shijiao_nr(event) {
    console.log("nr_event_shijiao:", event);
    this.setData({
      nr: event.detail.value
    })
  },
  //输入内容的限制函数
  input_nr(event) {
    console.log("nr_event_input:", event);
    if (event.detail.cursor >= 200) {
      wx.showToast({
        title: '字数已超200~',
      })
    }
  },
  //当标题失焦
  titleShijiao(event) {
    this.setData({
      title: event.detail.value
    })
    console.log("标题失焦----------标题内容：", this.data);
  },
  //标题聚焦提示长度过限
  bindinput(event) {
    console.log("event:", event);
    if (event.detail.value.length >= 30) {
      wx.showToast({
        title: '长度不能超过30...',
        duration: 1300,
        icon: "error"
      })
    }
  },

  // -----------------这是扔漂流瓶的js函数-----------------



  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    //这样写会导致图片上传后制动跳转到上一页
    // //收起页面
    // this.setData({
    //   isRuleTrue:false,
    //   put_bottle_Show:false,
    // })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})